package com.deliccio.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.deliccio.dao.ClienteDAO;
import com.deliccio.dao.MenuDAO;
import com.deliccio.dao.ParametrosDAO;
import com.deliccio.dao.ProductoDAO;
import com.deliccio.dao.SucursalesDAO;
import com.deliccio.dao.UsuarioDAO;
import com.deliccio.entitys.Cliente;
import com.deliccio.entitys.Menu;
import com.deliccio.entitys.Parametros;
import com.deliccio.entitys.Producto;
import com.deliccio.entitys.Ranking;
import com.deliccio.entitys.Sucursales;
import com.deliccio.entitys.Usuario;
import com.deliccio.service.PrincipalService;

@Service("PrincipalService")
public class PrincipalServiceImpl implements PrincipalService{

	@Autowired
	private UsuarioDAO usuarioDAO;

	@Autowired
	private ClienteDAO clienteDAO;
	
	@Autowired
	private ParametrosDAO parametrosDAO;
	
	@Autowired
	private MenuDAO menuDAO;

	@Autowired
	private ProductoDAO productoDAO;
	
	@Autowired
	private SucursalesDAO sucursalesDAO;
	
	@Override
	public List<Menu> obtenerMenusUsuario(Usuario usuario){		
		if(usuario==null){
			return null;
		}
		return menuDAO.obtenerMenusxPerfil(usuario.getParametro().getId());		
	}

	@Override
	public List<Menu> obtenerMenusCliente(Cliente cliente){		
		if(cliente==null){
			return null;
		}
		return menuDAO.obtenerMenusxPerfil(cliente.getParametro().getId());
	}

	@Override
	public List<Menu> obtenerMenus(){
		return menuDAO.obtenerMenusSinSession();
	}

	@Override
	public List<Parametros> listaTiposConjuntos(){
		return parametrosDAO.obtenerConjuntos();
	}

	@Override
	public List<Parametros> listaTiposProductos(){
		return null;
	}

	@Override
	public void cargarImagen(List<Parametros> lstTiposConjuntos){
		for(Parametros p : lstTiposConjuntos){			
			Producto prodct=productoDAO.obtenerTopProducto(p.getId());
			if(prodct!=null){
				p.setValue(prodct.getFoto().getRuta()+"/"+prodct.getFoto().getNombre());				
			}			
		}
		
	}

	@Override
	public List<Sucursales> obtenerSucursales(){
		return sucursalesDAO.obtenerSucursales();
	}

	@Override
	public List<Ranking> listaProductos(){
		return productoDAO.obtenerTop10();
	}	
	

	
	
	
	
}
